package com.changgou.goods.util;

import net.sourceforge.pinyin4j.PinyinHelper;

/**
 * 提取首字母工具类
 */
public class FirstLetterUtil {

    public static String FirstLetter(String s) {
        //定义一个空字符串
        String str = "";
        //定义字符
        char ch = 'a';
        //字符串非空判断
        if (s.length() > 0 && s != null) {
            //获取第一个字符
            ch = s.toCharArray()[0];
            //判断第一个字符是汉字还是英文字母

            //第一个字符为英文字母或数字
            if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')||(ch>='0'&&ch<='9')) {
                //把字符转换为字符串
                str = String.valueOf(ch);
                str = str.toUpperCase();

            }else if(String.valueOf(ch).matches("[\\u4e00-\\u9fa5]")){//判断字符为汉字：利用Unicode编码来判断
                //第一个字符为汉字(需要引入pinyin4j jar包)
                //将汉字转换为拼音字符数组
                String[] strings = PinyinHelper.toHanyuPinyinStringArray(ch);
                //遍历数组
                for (int i = 0; i < strings.length; i++) {
                    str = strings[0];
                }
                //
                char[] chs = str.toCharArray();
                for (int i = 0; i < chs.length; i++) {
                    str = String.valueOf(chs[0]);
                    str = str.toUpperCase();
                }
            } else {
                throw new RuntimeException("你的输入有误，请重新输入");
            }
        }
        return str;
    }

    /**
     * 测试方法
     * @param args
     */
    public static void main(String[] args) {
        String abc = FirstLetterUtil.FirstLetter("测试");
        System.out.println(abc);
    }
}
